package avicit.bdp.dms.dss.dao;

import avicit.bdp.common.base.BaseDAO;
import avicit.bdp.dms.dss.dto.DssSubscribeDTO;
import avicit.bdp.dms.dss.vo.DssSubScribeVo;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 数据资源申请表数据操作接口
 */
public interface DssSubscribeDAO extends BaseDAO<DssSubscribeDTO> {

    /**
     * 分页查询订阅列表
     *
     * @param typeIdList  分类ID
     * @param auditStatus 审核状态
     * @param keyWord     关键词
     * @param userId      订阅人
     * @return 分页列表
     */
    Page<DssSubScribeVo> selectSubscribeList(@Param("typeIdList") List<String> typeIdList,
                                             @Param("auditStatus") Integer auditStatus,
                                             @Param("keyWord") String keyWord,
                                             @Param("userId") String userId,
                                             @Param("wordSecretList") List<String> wordSecretList);

    /**
     * 批量添加
     *
     * @param list 批量数据
     * @return 添加成功数
     */
    int insertListByBatch(List<DssSubscribeDTO> list);

    /**
     * 批量删除
     *
     * @param idList 待删除数据ID列表
     * @return 更改成功数
     */
    int batchDelete(@Param("idList") List<String> idList);


    /**
     * 查询资源订阅人信息
     *
     * @param resourceId resourceId
     * @author felix
     */
    Page<DssSubscribeDTO> getSubscribeUsers(@Param("keyWords") String keyWords,
                                            @Param("resourceId") String resourceId);

    List<DssSubscribeDTO> getSubscribeList(@Param("dataResourceIdList") List<String> dataResourceIdList);

}
